package com.xxxx.comment.service.impl;

import com.xxxx.comment.entity.dto.Result;
import com.xxxx.comment.service.FileStorageService;
import com.xxxx.comment.service.UploadService;
import jakarta.annotation.Resource;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;


/**
 * 上传图片到阿里云OSS对象存储
 *
 * @author lzf
 * @date 2023/3/22 0:51:27
 */
@Data
@Slf4j
@Transactional
@Service("uploadService")
public class UploadServiceImpl implements UploadService
{
    private String ALIYUN_DNS = "https://blog-2023.oss-cn-hongkong.aliyuncs.com/";
    private String END_POINT = "oss-cn-hongkong.aliyuncs.com";
    private String ACCESS_KEY = "LTAI5tNMsqd5bJ3wbBBNPWHu";
    private String ACCESS_SECRET = "5s72BrXfbQUfOgRiyqUCCMr89MzaOM";

    @Resource
    private FileStorageService fileStorageService;

    /**
     * 阿里云上传
     *
     * @param file 文件
     * @return 文件存储ID
     */
    @Override
    public Result upload(MultipartFile file)
    {
        return null;
//         // 校验文件
//         if (Objects.isNull(file))
//             return Result.fail("文件不存在，请尝试重新上传文件！");
//         // 限制文件大小
//         long size = file.getSize() / 1024 / 1024;
//         if (size > 5)
//             return Result.fail("文件的大小不能超过5MB");
//         // 获取原文件名
//         String originalFilename = file.getOriginalFilename();
//         // 判断文件格式，这里就不进行判断了，因为OSS啥都可以存，不想给自己做限制
//         assert originalFilename != null;
// //        if (!originalFilename.endsWith(".png") || !originalFilename.endsWith(".jpg"))
// //            throw new SystemException(HttpCode.FILE_TYPE_ERROR);
//         // 根据“.”对文件名进行切割，同时使用split[split.length - 1]确保文件名中出现的"."不会影响到我们的程序
//         String[] split = originalFilename.split("\\.");
//         String ext = "." + split[split.length - 1];
//         // UUID生成的不是字符串，需要先进行转换，同时UUID中还会带有"-"号，需要进行替换
//         String uuid = UUID.randomUUID().toString().replace("-", "");
//         String fileName = uuid + ext;
//         // OSS客户端对象
//         OSS oss = new OSSClientBuilder().build(END_POINT, ACCESS_KEY, ACCESS_SECRET);
//         // 上传图片到阿里云OSS中
//         try
//         {
//             oss.putObject(
//                     "blog-2023",
//                     fileName,
//                     file.getInputStream()
//             );
//         } catch (IOException e)
//         {
//             throw new RuntimeException(e);
//         }
//         oss.shutdown();
//
//         return Result.ok(ALIYUN_DNS + fileName);
    }

}
